<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // Set()
  // ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。

  // 如何创建set数据?
  // 构造函数创建  new Set()

  var s = new Set();
  // console.log(s);

  // 如何实现set数据 成员(元素)增  删  查 ?
  // 使用set相关的属性和方法
  // 属性
  // size     返回Set数据的成员总数。

  // 方法
  // add(value)：   向set数据中, 添加某个值(不能重复)，返回 Set 结构本身。
  // delete(value)：删除某个值，返回一个布尔值，表示删除是否成功。
  // has(value)：   返回一个布尔值，表示该值是否为Set的成员。 (Set结构是否存在某个元素)
  // clear()：       清除所有成员，没有返回值。

  // console.log(s.size);

  // add()
  // 值类型
  // s.add(1);
  // s.add(2);
  // s.add(3);
  // s.add(4);

  // 引用类型   只有引用同一片内存空间 => 才是重复的
  // var arr = [];
  // var brr = arr;
  // s.add(arr);  //同一片内存空间不能重复
  // s.add(brr);

  // s.add({});  //内存空间不同 可以重复放
  // s.add({});


  // delete()   单删(一个一个删除 存储的成员/元素/数据)
  // console.log(s.delete(1)); //true
  // console.log(s.delete(1)); //false
  // console.log(s.delete(2)); //true
  // console.log(s.delete(3)); //true
  // console.log(s.delete(4)); //true

  // clear()   清空(全删 一次性删除所有)
  // s.clear();

  // has()  
  console.log(s.has(1));;  //  => 存在返回true => 不存在返回 false
  console.log(s.has(2));;
  console.log(s.has(3));;
  console.log(s.has(4));;


  console.log(s);
  console.log(s.size);




</script>

</html>